<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        class Dog {
            // 私有变量 只能在对象中使用
            #height = 10
            // 对象某些直接有值
            type = "狗"
            // 构造方法
            constructor(name,age) {
                this.name = name
                this.age =age
                // 属性有默认值
                // this.type = "狗"
            }
            // 会被构造函数覆盖掉
            age = 10
            // 方法
            speak = function () {
                console.log("汪汪叫");
            }

            eat(){
                console.log("吃骨头",this.#height);
            }
            // 私有变量，外面想用到 使用公有的方法 方法名会变成属性
            set myh (val){
                // 当身高的值 给的不合理的时候 不许设置
                if(val<=0){
                    return
                }
                console.log('我在设置#height的值');
                return this.#height
            }
        }
        let dd = new Dog("旺财",3)
        let cc = new Dog("小白",3)

        console.log(cc);
        console.log(dd.type);
        console.log(dd.height);
        let h = dd.eat()
        console.log(h);
        dd.myh = -200
        console.log(dd);
        // console.log(dd.myh);
    </script>
</body>
</html>